From: Jasper St. Pierre Date: Fri, 30 Sep 2011 07:58:44 +0000 (-0400) Subject: lookingGlass: Add an easier way to see extension errors X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~7415 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=b07e45e214625cb2e14d98710afe449a70a21f09;p=gnome-shell.git lookingGlass: Add an easier way to see extension errors Use the extensions tab to show errors belonging to each extension. https://bugzilla.gnome.org/show_bug.cgi?id=660546 --- diff --git a/js/ui/lookingGlass.js b/js/ui/lookingGlass.js index b0c0f0662..6ac524784 100644 --- a/js/ui/lookingGlass.js +++ b/js/ui/lookingGlass.js @@ -686,6 +686,34 @@ Extensions.prototype = { Main.lookingGlass.close(); }, + _onViewErrors: function (actor) { + let meta = actor._extensionMeta; + let shouldShow = !actor._isShowing; + + if (shouldShow) { + let errors = ExtensionSystem.errors[meta.uuid]; + let errorDisplay = new St.BoxLayout({ vertical: true }); + if (errors && errors.length) { + for (let i = 0; i < errors.length; i ++) + errorDisplay.add(new St.Label({ text: errors[i] })); + } else { + /* Translators: argument is an extension UUID. */ + let message = _("%s has not emitted any errors.").format(meta.uuid); + errorDisplay.add(new St.Label({ text: message })); + } + + actor._errorDisplay = errorDisplay; + actor._parentBox.add(errorDisplay); + actor.label = _("Hide Errors"); + } else { + actor._errorDisplay.destroy(); + actor._errorDisplay = null; + actor.label = _("Show Errors"); + } + + actor._isShowing = shouldShow; + }, + _stateToString: function(extensionState) { switch (extensionState) { case ExtensionSystem.ExtensionState.ENABLED: @@ -730,6 +758,13 @@ Extensions.prototype = { metaBox.add(webpage.actor); } + let viewerrors = new Link.Link({ label: _("Show Errors") }); + viewerrors.actor._extensionMeta = meta; + viewerrors.actor._parentBox = box; + viewerrors.actor._isShowing = false; + viewerrors.actor.connect('clicked', Lang.bind(this, this._onViewErrors)); + metaBox.add(viewerrors.actor); + return box; } };